As distributed object systems have become more popular, and as the ability to extend data types on client systems has become more simple, it has become more common for a server and a client in a distributed object system to have different versions of the same data type (where a data type is defined by a class, (e.g., includes methods, properties, fields)). Conventionally a data type mismatch prevents the client and server from interacting on the mismatched data types. With the increasing number of user created data types, such mismatching has increased. Thus, there remains a need for a system and method to mitigate problems associated with mismatched client and server data types.
A proxy is an image of an object where the object resides in a different logical and/or physical entity (e.g., machine, process, network). Proxies may be employed in distributed systems (where the proxy is a local image of a remote object) and in non-distributed systems (where the proxy is a local image of a local object). In distributed systems, proxies can be employed to facilitate local processing that may improve efficiency while in non-distributed systems proxies can be employed to facilitate actions like persisting an object. Proxies employed in remote processing may interact with a remote object that may reside across a remoting boundary (e.g., machine, domain). Proxies employed in local processing may interact with a local object that does not reside across a remoting boundary but which may still reside across a logical boundary (e.g., address space, process).
In a distributed object system, a client may create a proxy that images an object on a server. The object that is imaged may implement a first set of one or more interface and base class data types. The object that is imaged may require that a proxy load a first set of one or more attributes and/or methods to image the object. When the proxy is created for the object that is imaged, the interface and base data types implemented by the object are typically automatically loaded into the client. Such automatic loading consumes computing resources including time and memory for the typical case when the client interacts with the server object using only a subset of the data types implemented by the server object. Therefore there remains a need for a system and method to mitigate problems associated with loading data types in proxies imaging objects in distributed object systems.